////////////////////////////////////////////////////////////////////////////
//
//  CryEngine Source File.
//  Copyright (C), Crytek, 2010.
// -------------------------------------------------------------------------
//  File name:   ICryGameSpyLobbyComponent.h
//  Version:     v1.00
//  Created:     28/05/2010 by Paul Mikell.
//  Description: ICryGameSpyLobbyComponent interface definitions
// -------------------------------------------------------------------------
//  History:
//
////////////////////////////////////////////////////////////////////////////


#ifndef __ICRYGAMESPYLOBBYCOMPONENT_H__

#define __ICRYGAMESPYLOBBYCOMPONENT_H__

#pragma once

#if USE_CRYLOBBY_GAMESPY

enum EGameSpyObject
{
	eGSO_Core,
	eGSO_AvailabilityCheck,
	eGSO_GPConnection,
	eGSO_Peer,
	eGSO_AuthService,
	eGSO_CDKey,
	eGSO_Num
};


enum EGameSpyObjectBit
{
	eGSOB_Core = BIT( eGSO_Core ),
	eGSOB_AvailabilityCheck = BIT( eGSO_AvailabilityCheck ),
	eGSOB_GPConnection = BIT( eGSO_GPConnection ),
	eGSOB_Peer = BIT( eGSO_Peer ),
	eGSOB_AuthService = BIT( eGSO_AuthService ),
	eGSOB_CDKey = BIT( eGSO_CDKey )
};


struct ICryGameSpyLobbyComponent
{
	enum ETaskGameSpyCheckResult
	{
		eTGSCR_Wait,
		eTGSCR_Proceed,
		eTGSCR_Fail
	};

	virtual void OnGameSpyObjectAvailable( EGameSpyObjectBit object ) = 0;
	virtual void OnGameSpyObjectUnavailable( EGameSpyObjectBit object ) = 0;
	virtual void OnGameSpyObjectCantMakeAvailable( EGameSpyObjectBit object ) = 0;
};

#endif // USE_CRYLOBBY_GAMESPY


#endif // ndef __ICRYGAMESPYLOBBYCOMPONENT_H__
